using System;
using System.Collections.Generic;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;


namespace App2._
{
    /// <summary>
    /// Interaction logic for Window1.xaml
    /// </summary>

    public partial class Window1 : System.Windows.Window
    {

        public Window1()
        {
            InitializeComponent();
        }

        public void OnShutup(object sender, RoutedEventArgs args)
        {
            NewNameSpace.OuterButton button = sender as NewNameSpace.OuterButton;
            if (button == null)
                return;

            button.LetHimShutup(sender, args);
        }

        public void OnWantRectangle(object sender, RoutedEventArgs args)
        {
            Button button = sender as Button;
            if (button != null)
                button.Content = Resources["rectangle"];
        }
    }
}

namespace NewNameSpace
{
    public class OuterButton : Button
    {
        public OuterButton()
            : base()
        { }

        public void LetHimShutup(object sender, RoutedEventArgs args)
        {
            App2._.Window1 window = Application.Current.MainWindow as App2._.Window1;
            if (window == null)
            {
                MessageBox.Show("Window1 ignored me...");
                return;
            }

            window.publicButton.Style = (Style)window.Resources["buttonStyle"];
            window.publicButton.Content = "Oh, I see...";
        }
    }
}